home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / dev / c / AmiVoGL_MDEV.lha / hershey / src / htext.s < prev    next >
Text File  |  1997-12-30  |  18KB  |  1,265 lines

  1.  
  2. ; Maxon C++ Compiler
  3. ; LS2:work/voGL/hershey/src/htext.c
  4.     mc68020
  5.     mc68881
  6.     XREF    _rmv
  7.     XREF    _move2
  8.     XREF    _gexit
  9.     XREF    _rdr
  10.     XREF    _hallocate
  11.     XREF    _check_loaded
  12.     XREF    _strlen
  13.     XREF    _strrchr
  14.     XREF    _strcmp
  15.     XREF    _strcat
  16.     XREF    _strcpy
  17.     XREF    _getenv
  18.     XREF    _free
  19.     XREF    _cos__r
  20.     XREF    _sin__r
  21.     XREF    _exit
  22.     XREF    _fread
  23.     XREF    _fprintf
  24.     XREF    _fclose
  25.     XREF    _fopen
  26.     XREF    _std__in
  27.     XREF    _std__out
  28.     XREF    _std__err
  29.     XREF    ___MEMFLAGS
  30.     XREF    _vdevice
  31.  
  32.     SECTION ":0",CODE
  33.  
  34.  
  35.     XDEF    _hfont
  36. _hfont
  37. L57    EQU    -$8
  38.     link    a5,#L57+8
  39. L58    EQU    $C00
  40.     movem.l    a2/a3,-(a7)
  41.     move.l    $8(a5),a2
  42.     XREF    userbreak_flagpos
  43.     move.l    userbreak_flagpos,a1
  44.     btst    #4,(a1)
  45.     bne    L59
  46.     cmp.b    #$2F,(a2)
  47.     bne    L2
  48.     pea    _old_font
  49.     pea    $2F.w
  50.     move.l    a2,-(a7)
  51.     jsr    _strrchr
  52.     addq.l    #$8,a7
  53.     move.l    d0,a3
  54.     addq.l    #1,a3
  55.     move.l    a3,-(a7)
  56.     jsr    _strcmp
  57.     addq.l    #$8,a7
  58.     tst.l    d0
  59.     bne    L1
  60.     movem.l    (a7)+,a2/a3
  61.     unlk    a5
  62.     rts
  63. L1
  64.     bra.b    L4
  65. L2
  66.     pea    _old_font
  67.     move.l    a2,-(a7)
  68.     jsr    _strcmp
  69.     addq.l    #$8,a7
  70.     tst.l    d0
  71.     bne    L3
  72.     movem.l    (a7)+,a2/a3
  73.     unlk    a5
  74.     rts
  75. L3
  76. L4
  77.     move.l    a2,-(a7)
  78.     jsr    _hershfont
  79.     addq.l    #4,a7
  80.     tst.l    d0
  81.     bne    L5
  82.     move.l    a2,-(a7)
  83.     pea    L60
  84.     pea    _std__err
  85.     jsr    _fprintf
  86.     lea    $C(a7),a7
  87.     jsr    _gexit
  88.     pea    1.w
  89.     jsr    _exit
  90.     addq.l    #4,a7
  91. L5
  92.     cmp.b    #$2F,(a2)
  93.     bne    L6
  94.     pea    $2F.w
  95.     move.l    a2,-(a7)
  96.     jsr    _strrchr
  97.     addq.l    #$8,a7
  98.     move.l    d0,a3
  99.     addq.l    #1,a3
  100.     move.l    a3,-(a7)
  101.     pea    _old_font
  102.     jsr    _strcpy
  103.     addq.l    #$8,a7
  104.     bra    L7
  105. L6
  106.     move.l    a2,-(a7)
  107.     pea    _old_font
  108.     jsr    _strcpy
  109.     addq.l    #$8,a7
  110. L7
  111.     movem.l    (a7)+,a2/a3
  112.     unlk    a5
  113.     rts
  114.  
  115.     XDEF    _hnumchars
  116. _hnumchars
  117. L61    EQU    0
  118. L62    EQU    0
  119.     move.l    userbreak_flagpos,a1
  120.     btst    #4,(a1)
  121.     bne    L59
  122.     pea    L63
  123.     jsr    _check_loaded
  124.     addq.l    #4,a7
  125.     move.w    _nchars,d0
  126.     ext.l    d0
  127.     rts
  128.  
  129.     XDEF    _hsetpath
  130. _hsetpath
  131. L64    EQU    -$C
  132.     link    a5,#L64+8
  133. L65    EQU    $804
  134.     movem.l    d2/a3,-(a7)
  135.     move.l    userbreak_flagpos,a1
  136.     btst    #4,(a1)
  137.     bne    L59
  138.     move.l    $8(a5),-(a7)
  139.     pea    _fpath
  140.     jsr    _strcpy
  141.     addq.l    #$8,a7
  142.     pea    _fpath
  143.     jsr    _strlen
  144.     addq.l    #4,a7
  145.     move.l    d0,d2
  146.     move.l    #_fpath,a3
  147.     cmp.b    #$2F,0(a3,d2.l)
  148.     beq    L8
  149.     move.l    #_fpath,a3
  150.     cmp.b    #$3A,0(a3,d2.l)
  151.     beq    L8
  152.     pea    L66
  153.     pea    _fpath
  154.     jsr    _strcat
  155.     addq.l    #$8,a7
  156. L8
  157.     movem.l    (a7)+,d2/a3
  158.     unlk    a5
  159.     rts
  160.  
  161. _hershfont
  162. L67    EQU    -$124
  163.     link    a5,#L67+20
  164. L68    EQU    $4C84
  165.     movem.l    d2/d7/a2/a3/a6,-(a7)
  166.     move.l    userbreak_flagpos,a1
  167.     btst    #4,(a1)
  168.     bne    L59
  169.     move.l    #_fpath,a3
  170.     tst.b    (a3)
  171.     beq    L9
  172.     pea    _fpath
  173.     pea    -$110(a5)
  174.     jsr    _strcpy
  175.     addq.l    #$8,a7
  176.     move.l    $8(a5),-(a7)
  177.     pea    -$110(a5)
  178.     jsr    _strcat
  179.     addq.l    #$8,a7
  180.     bra    L17
  181. L9
  182.     pea    L69
  183.     jsr    _getenv
  184.     addq.l    #4,a7
  185.     move.l    d0,a6
  186.     cmp.w    #0,a6
  187.     beq    L11
  188.     move.l    a6,-(a7)
  189.     pea    -$110(a5)
  190.     jsr    _strcpy
  191.     addq.l    #$8,a7
  192.     lea    -$110(a5),a3
  193.     pea    -$110(a5)
  194.     jsr    _strlen
  195.     addq.l    #4,a7
  196.     subq.l    #1,d0
  197.     cmp.b    #$3A,0(a3,d0.l)
  198.     beq    L10
  199.     pea    L66
  200.     pea    -$110(a5)
  201.     jsr    _strcat
  202.     addq.l    #$8,a7
  203. L10
  204.     move.l    $8(a5),-(a7)
  205.     pea    -$110(a5)
  206.     jsr    _strcat
  207.     addq.l    #$8,a7
  208.     bra    L16
  209. L11
  210.     pea    L70
  211.     jsr    _getenv
  212.     addq.l    #4,a7
  213.     move.l    d0,a6
  214.     cmp.w    #0,a6
  215.     beq    L13
  216.     move.l    a6,-(a7)
  217.     pea    -$110(a5)
  218.     jsr    _strcpy
  219.     addq.l    #$8,a7
  220.     lea    -$110(a5),a3
  221.     pea    -$110(a5)
  222.     jsr    _strlen
  223.     addq.l    #4,a7
  224.     subq.l    #1,d0
  225.     cmp.b    #$3A,0(a3,d0.l)
  226.     beq    L12
  227.     pea    L66
  228.     pea    -$110(a5)
  229.     jsr    _strcat
  230.     addq.l    #$8,a7
  231. L12
  232.     move.l    $8(a5),-(a7)
  233.     pea    -$110(a5)
  234.     jsr    _strcat
  235.     addq.l    #$8,a7
  236.     bra    L15
  237. L13
  238.     pea    L71
  239.     pea    -$110(a5)
  240.     jsr    _strcpy
  241.     addq.l    #$8,a7
  242.     lea    -$110(a5),a3
  243.     pea    -$110(a5)
  244.     jsr    _strlen
  245.     addq.l    #4,a7
  246.     subq.l    #1,d0
  247.     cmp.b    #$3A,0(a3,d0.l)
  248.     beq    L14
  249.     pea    L66
  250.     pea    -$110(a5)
  251.     jsr    _strcat
  252.     addq.l    #$8,a7
  253. L14
  254.     move.l    $8(a5),-(a7)
  255.     pea    -$110(a5)
  256.     jsr    _strcat
  257.     addq.l    #$8,a7
  258. L15
  259. L16
  260. L17
  261.     pea    L72
  262.     pea    -$110(a5)
  263.     jsr    _fopen
  264.     addq.l    #$8,a7
  265.     move.l    d0,a2
  266.     cmp.w    #0,a2
  267.     bne    L18
  268.     pea    L72
  269.     move.l    $8(a5),-(a7)
  270.     jsr    _fopen
  271.     addq.l    #$8,a7
  272.     move.l    d0,a2
  273.     cmp.w    #0,a2
  274.     bne    L18
  275.     move.l    $8(a5),-(a7)
  276.     pea    -$110(a5)
  277.     pea    L73
  278.     pea    _std__err
  279.     jsr    _fprintf
  280.     lea    $10(a7),a7
  281.     pea    1.w
  282.     jsr    _exit
  283.     addq.l    #4,a7
  284. L18
  285.     move.l    a2,-(a7)
  286.     pea    1.w
  287.     pea    2.w
  288.     pea    _nchars
  289.     jsr    _fread
  290.     lea    $10(a7),a7
  291.     cmp.l    #1,d0
  292.     beq    L19
  293.     moveq    #0,d0
  294.     movem.l    (a7)+,d2/d7/a2/a3/a6
  295.     unlk    a5
  296.     rts
  297. L19
  298.     move.l    a2,-(a7)
  299.     pea    1.w
  300.     pea    2.w
  301.     pea    -$A(a5)
  302.     jsr    _fread
  303.     lea    $10(a7),a7
  304.     cmp.l    #1,d0
  305.     beq    L20
  306.     moveq    #0,d0
  307.     movem.l    (a7)+,d2/d7/a2/a3/a6
  308.     unlk    a5
  309.     rts
  310. L20
  311.     move.l    a2,-(a7)
  312.     pea    1.w
  313.     pea    2.w
  314.     pea    -$C(a5)
  315.     jsr    _fread
  316.     lea    $10(a7),a7
  317.     cmp.l    #1,d0
  318.     beq    L21
  319.     moveq    #0,d0
  320.     movem.l    (a7)+,d2/d7/a2/a3/a6
  321.     unlk    a5
  322.     rts
  323. L21
  324.     move.w    -$C(a5),d0
  325.     ext.l    d0
  326.     move.l    d0,_ftab
  327.     move.l    a2,-(a7)
  328.     pea    1.w
  329.     pea    2.w
  330.     pea    -$C(a5)
  331.     jsr    _fread
  332.     lea    $10(a7),a7
  333.     cmp.l    #1,d0
  334.     beq    L22
  335.     moveq    #0,d0
  336.     movem.l    (a7)+,d2/d7/a2/a3/a6
  337.     unlk    a5
  338.     rts
  339. L22
  340.     move.w    -$C(a5),d0
  341.     ext.l    d0
  342.     move.l    d0,_ftab+4
  343.     move.l    a2,-(a7)
  344.     pea    1.w
  345.     pea    2.w
  346.     pea    -$C(a5)
  347.     jsr    _fread
  348.     lea    $10(a7),a7
  349.     cmp.l    #1,d0
  350.     beq    L23
  351.     moveq    #0,d0
  352.     movem.l    (a7)+,d2/d7/a2/a3/a6
  353.     unlk    a5
  354.     rts
  355. L23
  356.     move.w    -$C(a5),d0
  357.     ext.l    d0
  358.     move.l    d0,_ftab+$8
  359.     tst.l    _hLoaded
  360.     beq    L26
  361.     move.l    _ftab+$10,a3
  362.     moveq    #0,d0
  363.     tst.l    0(a3,d0.l*4)
  364.     beq    L24
  365.     move.l    _ftab+$10,a3
  366.     moveq    #0,d0
  367.     move.l    0(a3,d0.l*4),-(a7)
  368.     jsr    _free
  369.     addq.l    #4,a7
  370. L24
  371.     tst.l    _ftab+$10
  372.     beq    L25
  373.     move.l    _ftab+$10,-(a7)
  374.     jsr    _free
  375.     addq.l    #4,a7
  376. L25
  377.     clr.l    _hLoaded
  378. L26
  379.     move.w    _nchars,d0
  380.     ext.l    d0
  381.     addq.l    #1,d0
  382.     asl.l    #2,d0
  383.     move.l    d0,-(a7)
  384.     jsr    _hallocate
  385.     addq.l    #4,a7
  386.     move.l    d0,_ftab+$10
  387.     move.w    -$A(a5),d0
  388.     ext.l    d0
  389.     add.l    d0,d0
  390.     move.l    d0,-(a7)
  391.     jsr    _hallocate
  392.     addq.l    #4,a7
  393.     move.l    d0,_ftab+$C
  394.     moveq    #0,d2
  395.     bra    L28
  396. L27
  397.     move.l    a2,-(a7)
  398.     pea    1.w
  399.     pea    2.w
  400.     pea    -$C(a5)
  401.     jsr    _fread
  402.     lea    $10(a7),a7
  403.     cmp.l    #1,d0
  404.     beq    L30
  405.     moveq    #0,d0
  406.     movem.l    (a7)+,d2/d7/a2/a3/a6
  407.     unlk    a5
  408.     rts
  409. L30
  410.     move.l    a2,-(a7)
  411.     move.w    -$C(a5),d0
  412.     ext.l    d0
  413.     move.l    d0,-(a7)
  414.     pea    1.w
  415.     move.l    _ftab+$C,-(a7)
  416.     jsr    _fread
  417.     lea    $10(a7),a7
  418.     move.w    -$C(a5),d7
  419.     ext.l    d7
  420.     cmp.l    d7,d0
  421.     beq    L31
  422.     moveq    #0,d0
  423.     movem.l    (a7)+,d2/d7/a2/a3/a6
  424.     unlk    a5
  425.     rts
  426. L31
  427.     move.l    _ftab+$10,a3
  428.     move.l    _ftab+$C,0(a3,d2.l*4)
  429.     move.w    -$C(a5),d0
  430.     ext.l    d0
  431.     add.l    d0,_ftab+$C
  432. L29
  433.     addq.l    #1,d2
  434.     move.l    userbreak_flagpos,a1
  435.     btst    #4,(a1)
  436.     bne    L59
  437. L28
  438.     move.w    _nchars,d0
  439.     ext.l    d0
  440.     cmp.l    d0,d2
  441.     blt    L27
  442.     move.l    _ftab+$10,a3
  443.     move.w    _nchars,d0
  444.     ext.l    d0
  445.     move.l    _ftab+$C,0(a3,d0.l*4)
  446.     move.l    a2,-(a7)
  447.     jsr    _fclose
  448.     addq.l    #4,a7
  449.     move.l    #1,_hLoaded
  450.     moveq    #1,d0
  451.     movem.l    (a7)+,d2/d7/a2/a3/a6
  452.     unlk    a5
  453.     rts
  454.  
  455.     XDEF    _hgetcharsize
  456. _hgetcharsize
  457. L74    EQU    $24
  458. L75    EQU    $4CC4
  459.     movem.l    d2/d6/d7/a2/a3/a6,-(a7)
  460.     fmovem.x fp7,-(a7)
  461.     move.b    L74+4(a7),d2
  462.     move.l    L74+6(a7),a2
  463.     move.l    userbreak_flagpos,a1
  464.     btst    #4,(a1)
  465.     bne    L59
  466.     pea    L76
  467.     jsr    _check_loaded
  468.     addq.l    #4,a7
  469.     move.l    _ftab,d7
  470.     sub.l    _ftab+4,d7
  471.     fmove.l    d7,fp7
  472.     fmul.s    _SCSIZEY,fp7
  473.     move.l    L74+$A(a7),a3
  474.     fmove.s    fp7,(a3)
  475.     tst.l    _Fixedwidth
  476.     beq    L32
  477.     fmove.l    _ftab+$8,fp7
  478.     fmul.s    _SCSIZEX,fp7
  479.     fmove.s    fp7,(a2)
  480.     bra    L33
  481. L32
  482.     move.l    _ftab+$10,a3
  483.     extb.l    d2
  484.     move.l    d2,d7
  485.     sub.l    #$20,d7
  486.     move.l    0(a3,d7.l*4),a6
  487.     move.b    1(a6),d7
  488.     extb.l    d7
  489.     move.l    _ftab+$10,a3
  490.     extb.l    d2
  491.     move.l    d2,d6
  492.     sub.l    #$20,d6
  493.     move.l    0(a3,d6.l*4),a6
  494.     move.b    (a6),d6
  495.     extb.l    d6
  496.     sub.l    d6,d7
  497.     fmove.l    d7,fp7
  498.     fmul.s    _SCSIZEX,fp7
  499.     fmove.s    fp7,(a2)
  500. L33
  501.     fmovem.x (a7)+,fp7
  502.     movem.l    (a7)+,d2/d6/d7/a2/a3/a6
  503.     rts
  504.  
  505.     XDEF    _hdrawchar
  506. _hdrawchar
  507. L77    EQU    -$78
  508.     link    a5,#L77+60
  509. L78    EQU    $4CFC
  510.     movem.l    d2-d7/a2/a3/a6,-(a7)
  511.     fmovem.x fp6/fp7,-(a7)
  512.     move.l    userbreak_flagpos,a1
  513.     btst    #4,(a1)
  514.     bne    L59
  515.     pea    L79
  516.     jsr    _check_loaded
  517.     addq.l    #4,a7
  518.     move.l    $8(a5),d7
  519.     sub.l    #$20,d7
  520.     move.l    d7,-$10(a5)
  521.     cmp.l    #0,-$10(a5)
  522.     bge    L34
  523.     clr.l    -$10(a5)
  524. L34
  525.     move.l    -$10(a5),d7
  526.     move.w    _nchars,d6
  527.     ext.l    d6
  528.     cmp.l    d6,d7
  529.     blt    L35
  530.     move.w    _nchars,d7
  531.     ext.l    d7
  532.     subq.l    #1,d7
  533.     move.l    d7,-$10(a5)
  534. L35
  535.     moveq    #1,d4
  536.     clr.l    -$20(a5)
  537.     move.l    -$20(a5),-$1C(a5)
  538.     tst.l    _Justify
  539.     bne    L36
  540.     tst.l    _Fixedwidth
  541.     beq    L80
  542.     move.l    _ftab+$8,d0
  543.     neg.l    d0
  544.     divs.l    #2,d0
  545.     bra.b    L81
  546. L80
  547.     move.l    _ftab+$10,a3
  548.     move.l    -$10(a5),d7
  549.     move.l    0(a3,d7.l*4),a6
  550.     move.b    (a6),d7
  551.     extb.l    d7
  552.     sub.l    #$52,d7
  553.     move.l    d7,d0
  554. L81
  555.     move.l    d0,-$1C(a5)
  556.     move.l    _ftab+4,-$20(a5)
  557.     bra    L38
  558. L36
  559.     cmp.l    #2,_Justify
  560.     bne    L37
  561.     tst.l    _Fixedwidth
  562.     beq    L82
  563.     move.l    _ftab+$8,d0
  564.     divs.l    #2,d0
  565.     bra.b    L83
  566. L82
  567.     move.l    _ftab+$10,a3
  568.     move.l    -$10(a5),d7
  569.     move.l    0(a3,d7.l*4),a6
  570.     move.b    (a6),d7
  571.     extb.l    d7
  572.     sub.l    #$52,d7
  573.     neg.l    d7
  574.     move.l    d7,d0
  575. L83
  576.     move.l    d0,-$1C(a5)
  577.     move.l    _ftab+4,-$20(a5)
  578. L37
  579. L38
  580.     move.l    _ftab+$10,a3
  581.     move.l    -$10(a5),d7
  582.     addq.l    #1,d7
  583.     move.l    0(a3,d7.l*4),-$8(a5)
  584.     move.l    _ftab+$10,a3
  585.     move.l    -$10(a5),d7
  586.     move.l    0(a3,d7.l*4),a6
  587.     addq.l    #2,a6
  588.     move.l    a6,a2
  589.     clr.l    -$3C(a5)
  590.     move.l    -$3C(a5),-$38(a5)
  591.     bra    L40
  592. L39
  593.     move.b    (a2)+,d7
  594.     extb.l